BIN=proc.exe        # 定义结果变量
SRC=$(wildcard *.c) # 使用 wildcard 函数, 获取当前所有 .c 文件名
OBJ=$(SRC:.c=.o)    # 将SRC的所有同名 .c 替换 成为 .o 形成目标文件列表
# 注: 上一行之所以不像 SRC 那样匹配所有 .o 后缀的文件, 是考虑初次运行没有 .o 文件

$(BIN):$(OBJ)
	@echo "linking $^ to $@"
	@gcc -o $@ $^
	@echo "complete!"

%.o:%.c
	@echo "compling $< to $@"
	@gcc -c $<

.PHONY:clean
clean:
	@rm -f $(OBJ) $(BIN)
	@echo "complete!"


#SRC=$(shell ls *.c)
#OBJ=$(shell ls *.o)
#FINAL=main.exe
#
#$(FINAL):$(OBJ)
#	gcc -o $(FINAL) $(OBJ)
#$(OBJ):$(SRC)
#	gcc -c $(SRC)
#
#.PHONY:clean
#clean:
#	rm -f $(FINAL) $(OBJ)

#.PHONY:test
#test:
#	@echo "$(shell ls *.c)"
#	@echo "$(wildcard *.c)"
	
#ABC=World
#ABCD=echo
#
#.PHONY:test
#test:
#	@echo "Hello $(ABC)"
#	@$(ABCD) "Blaze"
